Word Embeddings 您所在的位置:网站首页 雷柏v500按键失灵 维修 Word Embeddings

Word Embeddings

2023-07-09 16:47| 来源: 网络整理| 查看: 265

Word Embeddings — Representação vetorial de textos para Machine LearningTail

Tail

·

Follow

15 min read·Nov 11, 2020

--

É relativamente fácil para nós seres humanos visualizarmos um texto e conseguir extrair alguma informação sobre ele a partir de sua simples leitura, por exemplo, na frase “Ser feliz sem motivo é a mais autêntica forma de felicidade.” sabemos a que classe gramatical cada palavra pertence e que juntas e em uma dada sequência nos passam um valor semântico coeso e coerente.

Posto que os algoritmos de aprendizado de máquina necessitam de valores númericos para realizar suas operações, utilizamos as WORD EMBEDDINGS , que nada mais são que métodos de transformar nosso corpo de texto em vetores!

Mas como podemos fazer com que as máquinas entendam também de maneira eficaz, visto que ainda os humanos estão extremamente suscetíveis a erros devido às subjetividades das línguas? Bom, esse é um dos grandes impasses que atormentam os desenvolvedores atualmente.

Nesse artigo, abordaremos de maneira simplificada o funcionamento de quatro desses algoritmos de conversão.

1. Bag Of Words (BOW)2. TF-IDF3. Word2Vec4. GloVe

Bag of Words (BOW)

O algoritmo BOW consiste em um processo de transformação do texto em dado numérico baseado na presença, contagem ou frequência total dos termos de um determinado documento.

Algoritmo

O algoritmo é essencialmente constituído de três etapas. Estas etapas consistem na coleta de dados, na criação do vocabulário e posteriormente a criação dos vetores numéricos dos documentos. A complexidade vem tanto em decidir como ocorrerá a formação do vocabulário de palavras conhecidas (ou tokens) e como indicar a presença de palavras conhecidas no documento.

Etapa 1: Envolve a reunião de documentos para a formação do corpus na segunda etapa, ou seja, a procura de documentos que poderão ser viáveis na construção do vocabulário. No nosso exemplo usaremos um pequeno poema de Carlos de Lemos, “Não Cobre Amor”.

.

Dessa forma, podemos separar cada linha como sendo um documento diferente e a junção de todos esses documentos irão compor o corpus.

Etapa 2: Após a coleta de dados, é preciso definir o vocabulário do corpus, criando uma lista com todas os termos presentes sem repetição. Existem algumas técnicas que diminuem o tamanho do vetor e consequentemente o custo computacional. Como cada palavra do vocabulário vai representar um espaço no vetor, quanto maior o vocabulário, maior é o tamanho do vetor formado e assim, maior será o custo computacional. Sendo assim, desconsiderar letras maiúsculas ou minúsculas é interessante, pois evita adicionar palavras iguais, porém com essa distinção. Também é interessante ignorar as pontuações, palavras muito frequentes e sem significado sozinhas, como “e”, “a”, “de” e usar técnicas para enxergar apenas o radical. Assim, palavras como: “brincar” e “brincando” teriam o mesmo radical “brinc” e seriam alocadas no mesmo espaço, diminuindo mais ainda o tamanho do vocabulário e consequentemente do nosso vetor.

Etapa 3: A última parte é a vetorização dos documentos, indicando a presença dos termos e isto pode ser feito de diferentes formas. A mais simples delas é a pontuação binária em que o vetor seria composto apenas com 0’s, indicando ausência ou 1’s, indicando a presença do termo. Assim, considerando o vocabulário simplificado e o documento dado pela quinta linha do corpus (“Que o amor não é peça”), temos:

“Não” = 1 | “cobre” = 0 | “amor” = 1 | “que” = 1 | “é” = 1 | “ouro” = 0 | “peça” = 1 | “todo” = 0 | “Mas” = 0 | “chama” = 0 | “fogo” = 0.

Vetor numérico = [1,0,1,1,1,0,1,0,0,0,0].

O segundo método é dado pela contagem, ou seja, se no documento existir dois termos iguais, ao invés de apenas indicar a existência com 1, será indicado a quantidade de vezes que o termo apareceu. Como exemplo será usado o documento dado pela linha 7 (“Mas chama, chama amor”).

“Não” = 0 | “cobre” = 0 | “amor” = 1 | “que” = 0 | “é” = 0 | “ouro” = 0 | “peça” = 0 | “todo” = 0 | “Mas” = 1 | “chama” = 2 | “fogo” = 0.

Vetor numérico = [0,0,1,0,0,0,0,0,1,2,0].

Já o terceiro método consiste no cálculo da frequência de cada termo em relação ao total de termos. A frequência consiste na divisão do número de ocorrências pelo número total de palavras do documento. Tendo em vista que o documento do exemplo que está sendo usado possui apenas quatro palavras, então o cálculo da frequência é dado por (número de ocorrências / 4).

Dessa forma, o vetor é dado por:

Vetor numérico = [0, 0, ¼, 0, 0, 0, 0, 0, ¼ , ½ , 0].

Vantagens e Aplicações

Se tratando de problemas onde não importa o posicionamento e significado dos termos, ou seja, o valor contextual, o modelo Bag of Words é extremamente simples e eficiente, sendo bastante utilizado em soluções de Processamento de Linguagem Natural (PLN) , geralmente envolvendo classificação de texto. Um exemplo bastante comum solucionado por este método é a filtragem de emails e a definição deste como sendo ou não spam, baseado na contagem de termos comuns a outros emails já classificados como spam fruto de classificações manuais feitas anteriormente.

Desvantagens

Como o próprio nome já diz, o modelo é um “Saco de Palavras”, onde tudo fica misturado. Por isso, uma das desvantagens desse método é que por ser baseada apenas na contagem e não levar em consideração o posicionamento das palavras, como já foi mencionado anteriormente, há uma perda semântica, ou seja, perda no sentido/significado das palavras. Além disso, se por algum motivo, o texto tenha uma dispersão enorme de palavras, o tamanho do vetor do vocabulário a ser criado também será grande, gerando um acentuado custo computacional.

TF-IDF

De forma simples, pode-se conceituar TF-IDF (Term Frequency-Inverse document frequency, Frequência de termo-frequência inversa de documento em tradução livre) como uma medida estatística que possui a finalidade de ser um indicativo da relevância de um termo na mineração de palavras de um texto. Este processo surgiu com o intuito de ser utilizado na busca em documentação e recuperação de informação de dados escritos.

Seu funcionamento consiste em proporcionalizar a continuidade de aparição de uma determinada palavra conforme ela aparece em um texto de um documento, sendo alinhada com a incidência de vezes que aquela mesma palavra aparece em diferentes documentos. Por isso, palavras que surgem com muita frequência ou que são utilizadas para estruturar o raciocínio do dito escrito, como “O”, “A”,”É”, “Está” serão ranqueadas com pesos baixíssimos, ainda que apareçam várias vezes em amostras diferentes.

Isso implica dizer, que se, por exemplo, a palavra “Pernambuco” aparece repetidamente dentro de um documento, não sendo tão frequente em outros, é um forte indicativo de que esta palavra é relevante para aquele entendimento.

De onde vem?

O surgimento dessa técnica, data de dois momentos distintos para sua concepção. A frequência de termos, ganhou holofotes pela primeira vez no ano de 1958 com a publicação do artigo The Automatic Creation of Literature Abstracts (Em tradução livre, A criação automática de resumos literarios), por Hans Peter Luhn. Nessa literatura, Luhn reforça a complexidade em segmentar e estruturar os resumos de artigos, levando em consideração sua eficiência baseada no esforço intelectual e a familiaridade dos conceitos a qual requer sua escrita. Seguindo essa linha de pensamento, é possível observar, de acordo com o autor, que a incidência de aparições de uma determinada palavra em um texto provê um poderoso indicativo da relevância semântica daquela expressão para seu determinado documento. Isto está explícito, uma vez que ao ilustrar qualquer assunto, existe uma linha de raciocínio que o autor segue prontamente com um grupo de palavras que remetem diretamente ao tema que se contenda.

Naquela época, Hans Peter já antecipava a importância de se encontrar e mensurar os pesos de ocorrência dentre termos, isso porém, era feito de forma levemente exacerbada e que facilmente se confundia pois dependendo das palavras que se buscava, eram encontradas várias repetições que pouca coisa, ou nada diziam sobre a mensagem que se estaria procurando.

Foi em 1972, que a Cientista da Computação Britânica pela Universidade de Cambridge, Karen Spärck Jones, em sua publicação A statistical interpretation of term specificity and its application in retrieval (Em tradução livre, Uma interpretação estatística da especificidade de termos e sua aplicação em recuperação), que a frequência inversa foi devidamente ilustrada pela primeira vez. A autora, foi brilhante ao destacar a exaustão que que se apresenta o número de vezes que se aparece um termo, porém, a relevância à frequência de aparições daquela determinada palavra em um grupo controlado de textos demonstraria o quão importante era aquela palavra para o documento ao qual ela apareceu.

Com essa ideia mais madura proposta por Karen Jones, foi que o TF-IDF realmente tomou forma e se popularizou.

Como funciona

O TF-IDF pode ser calculado conforme abaixo:

A contagem de frequência de termos, pode ser calculada e otimizada de diversas formas, porém o método mais comum é ter uma contagem bruta de quantas vezes determinado termo aparece dentro de um documento.A frequência inversa de um documento por sua vez, se caracteriza por analisar um conjunto determinado de documentos buscando determinada palavra. Com isso, identificando quão rara é aquela palavra. Essa métrica pode ser calculada utilizando o total de documentos, dividido pelo número de documentos que contém aquela palavra, por fim calculando o logaritmo. Quanto mais próximo de 0, mais comum aquela palavra é.

Multiplicando os dois valores acima, se encontra o valor do TF-IDF. Formalizando em uma fórmula matemática, entende-se que um documento d, de um conjunto de documentos D se calcula da seguinte forma:

STECANELLA, Bruno, 2019

Onde:

STECANELLA, Bruno, 2019

Sabendo disso, ser capaz de entender a relevância de uma determinada palavra dentro de um documento, pode ser amplamente utilizado para resgatar informação dentro de um conjunto, à fim de conseguir identificar os as informações mais relevantes dentro de um quadro isolado ou até mesmo extrair palavras chaves que identificam com precisão do que aquele determinado escrito aborda.

Calma, não precisa se confundir, para entender melhor vamos ver um exemplo prático simples, usando a tabela abaixo e buscando a relevância de “meu amor” dentre os documentos abaixo:

Se levarmos em consideração de forma literal os conceitos aplicados por Luhn, a sentença de número 4 seria evidentemente a de maior relevância junto a número 2, isso porquê, dos termos procurados ela tem o maior número de aparições. Porém, ao se aplicar a lógica de Karen Jones, atribuímos os pesos para as seguintes palavras:

Total de Documentos = 5

Nº de documentos que “meu” aparece = 3

Nº de documentos que “amor” aparece = 1

Frequência inversa de “meu” = 5/3 = 1,6

Frequência inversa de “amor” = 5/1 = 5

Com isso, atribuímos que amor dentro de um documento terá mais relevância do que o termo “meu”, que aparece evidentemente mais vezes. Para temos de apresentação, seguiremos a lógica que o peso de um documento se identifica por frequência de termos*frequência inversa. Assim temos:

Com isso, é possível observar que o documento de maior relevância semântica é o número dois, conforme demonstrado na lista abaixo.

Vantagens

Este tipo de algoritmo é muito simples, e consegue de maneira eficiente enquadrar os documentos mais relevantes para determinado termo. É comprovado por diversos estudos que a acurácia do TF-IDF é muito boa e retorna textos altamente compatíveis com o que se deseja alcançar. Sua lógica é muito simples, se comparada a outras estratégias que visam o mesmo objetivo e com isso fornece uma base sólida e consistente para se dar um pontapé inicial.

Desvantagens

Ao assumir que contar diferentes palavras dão um sentido de independência maior para o documento, computa a quantidade de palavras direto em um espaço de contagem. Sendo assim este tipo de algoritmo pode ser muito custoso para largos vocabulários, onde se faz necessário a todo momento buscar palavras novas e adicioná-las a contagem de documentos. Além disso, o método sofre com a perda semântica ao desconsiderar, assim como o BOW, a ordem das palavras.

Word2Vec

A principal característica do Word2Vec é que esse algoritmo consegue atribuir valor semântico às palavras de acordo com a posição que elas possuem no corpus analisado, atribuindo coordenadas multidimensionais que representam as palavras num espaço vetorial.

Infelizmente, nosso cérebro não é capaz de imaginar um espaço vetorial com mais de 3 dimensões, mas, usando um pouco de álgebra linear, podemos calcular a distância entre cada palavra e descobrir quais são mais parecidas (próximas no espaço vetorial) e quais são mais distantes. Podemos também encontrar relações semânticas fazendo combinações entre os vetores que representam cada palavra. É assustadoramente fascinante!

Nessa sessão cobriremos alguns detalhes dos principais aspectos do word2vec, sua história, importância, vantagens, desvantagens e principais aplicações.

Quem criou o word2vec?

O artigo Distributed Representations of Words and Phrases and their Compositionality (em tradução livre: Representações Distribuídas de Palavras e Frases e suas Composições), que apresenta o word2vec, foi publicado em 2013, durante um evento do Google. Tomas Mikolov, a quem é atribuída a criação do algoritmo, e outros quatro cientistas dirigidos por ele na época, apresentaram o algoritmo como uma forma mais rápida e eficiente de construir vetores a partir de palavras, e além disso, que leva em conta a ordem em que elas aparecem no texto.

O Word2Vec teve um impacto positivo na grande área do NLP pois trouxe escalabilidade ao word embedding, fazendo uso de redes neurais e aplicando a técnica de amostragem negativa para otimizar o modelo. Outro aspecto importante é a flexibilidade do Word2Vec. Por isso não é estranho que encontremos por aí versões alternativas do modelo para diferentes áreas e com diferentes aplicações: metaprod2vec, doc2vec, DNA2Vec, entre outros.

Como isso acontece?

Como foi comentado acima, o word2vec cria vetores a partir da aplicação de redes neurais. Uma rede composta por apenas uma entrada, uma camada oculta e uma de saída, que utilizando uma função softmax retorna a probabilidade máxima de que uma palavra seja utilizada para aquele input.

A rede utilizada pode ter duas estruturas diferentes: O CBOW (Continous Bag of Words), que analisa o contexto no qual cada palavra está inserida para gerar um output de uma palavra que melhor represente aquele contexto, ou, o Skip-gram, que trabalha no sentido contrário, recebendo uma palavra e devolvendo um contexto, ou seja, uma série de palavras que melhor represente aquele input.

Quando usar CBOW ou SKIP-GRAM?

O Continous Bag of Words (CBOW) usa como parâmetro uma janela (window), ou seja: uma quantidade de palavras à direita e à esquerda de cada palavra para observar o contexto no qual essas estão inseridas. A ordem das palavras dentro da janela não importa, são todas agrupadas num pacote de palavras (por isso o “Bag of Words”) e são inseridas numa rede neural que, diferente do Bag of Words comum (valores discretos), atribui valores contínuos como peso para cada palavra, (daí o “Continous”):

Devido ao funcionamento do CBOW seu custo é menor e pode ser representado por:

Onde N é o número de palavras no input, D será a dimensão da matriz de embedding, V é a quantidade de palavras no vocabulário e Q é o custo.

Como o valor de log2(V) é baixo podemos observar que o maior impacto no desempenho do CBOW vem da relação entre o número de palavras e a dimensão da matriz de embedding. De forma simples, o CBOW é uma opção eficiente, que pode ser utilizado em corpus maiores, mas não é muito sensível a palavras com baixa frequência.

E o Skip-Gram? Bem, como também já citei acima, o skip-gram percorre o caminho inverso na rede neural: O input será uma palavra, o contexto para essa palavra é observado de acordo com a janela e uma estimativa de N palavras é recomendado para gerar o melhor contexto.

Em comparação ao CBOW o skip-gram é mais lento e sua função de custo pode ser representada como:

Onde C representa a distância máxima entre as palavras. Portanto, o skip-gram é mais recomendado se o corpus não for muito extenso. Ele tente a captar melhor as nuances do texto.

Aplicações

O word2vec é muito versátil e devido à sua estrutura pode ser adaptado às mais diversas necessidades. Quando usamos os vetores que o modelo gera para treinar outras redes neurais aí as possibilidades são incontáveis. As aplicações vão de geração de textos, análise de sentimento, sistemas de recomendação, análise genética até tradução até uma simples clusterização.

GloVe

GloVe ou (Global Vectors for word representation) é um modelo de aprendizagem não supervisionado que utiliza da combinação das técnicas global matrix factorization e local context window para a criação dos vetores que representam palavras e redução de dimensionalidade.

Foi criado pelos pesquisadores Jeffrey Pennington, Richard Socher e Christopher D Manning da Universidade Stanford, sendo publicado em 2014.

As duas principais características que diferem o Glove do Word2Vec são:

Word2Vec se trata de um modelo preditivo, visto que, ele tenta prever uma palavra dado um contexto (CBOW) ou o contrário (Skip-Gram), enquanto o Glove é um modelo estatístico baseado em contagem, pois ele analisa a relação entre as palavras por meio da criação de uma matriz de coocorrência.A matriz de coocorrência é feita a partir de uma análise global utilizando o conceito de local context window, ou seja, é levado em consideração todos os documentos do corpus. O Word2Vec apenas utiliza da inspeção local para fazer suas previsões.

Vamos ver um exemplo para ficar melhor o entendimento dessa matriz.

Utilizaremos o seguinte corpus e windows size = 1:

Doc1: “O sol é lindo”

Doc2: “O sol brilha”

Ela é pode ser representada da seguinte forma: X_ij, correspondendo ao número de vezes que uma palavra j apareceu no mesmo contexto da palavra i no corpus X. A matriz possui a sua dimensionalidade igual a V x V, sendo V a quantidade de palavras no nosso vocabulário.

Agora tente imaginar o tamanho de uma matriz gerada por um corpus formado por vários documentos com milhares de palavras.

É … não seria algo legal de se imaginar, além do mais, esse é o motivo da sua desvantagem em relação ao Word2Vec.

Para termos uma idéia como o modelo Glove retira algum significado da matriz e descobre a relação semântica entre palavras, tomemos como exemplo a palavra ice(gelo) e steam(vapor). A relação entre elas pode ser examinada por meio da razão das probabilidades de coocorrência com algumas palavras teste.

Digamos que P(k|w) é a probabilidade de k aparecer no contexto de w, se escolhermos uma palavra que é relacionada com ice, mas não com steam, como solid(sólido), P(solid|ice) será um número alto, mas P(solid|steam) será baixo, logo, a razão entre os dois números será grande. Porém, se escolhermos gas(gás) para ser nosso k, P(gas|ice) será baixo e P(gas|steam) será alto, e a razão entre eles resultará em um número pequeno. Se a razão entre as probabilidades for perto de 1, isso significa que a relação do k escolhido com ice e com steam é parecida, seja por que são igualmente parecidas, a exemplo de water(água), ou igualmente sem relação, a exemplo de fashion(moda).

Com a tabela fica mais fácil de observar a forma que ice e steam estão relacionadas entre si e com as 4 palavras teste.

Aplicações

Por sua natureza abrangente, o Glove é usado para diversos propósitos distintos, como para descobrir sinônimos de palavras, identificar cidades por meio de CEPs das suas ruas e até mesmo na detecção de estágios iniciais em doenças mentais, como anorexia e depressão.

VantagensConsegue encontrar correlações globais além de locais.Possui uma função de ponderação que atribui um peso relativamente menor a pares de palavras que possuem uma coocorrência rara ou muito frequente.DesvantagemPelo fato do modelo ser treinado a partir de uma matriz coocorrência, matriz esparsa, é necessário mais memória de armazenamento em relação ao Word2Vec.LimitaçõesO modelo não consegue aprender representações de palavras que estão fora do vocabulário.Não sabe diferenciar palavras homônimas, apresentam igualdade ou semelhança gráfica, porém com significados distintos, por exemplo, existem dois significados para a palavra manga, manga fruta e manga parte da camisa.Referências

https://arxiv.org/pdf/1301.3781.pdf

http://www.di.ubi.pt/~jpaulo/competence/general/%281958%29Luhn.pdf

https://manticoresearch.com/2019/04/09/tf-idf-in-a-nutshell

https://monkeylearn.com/blog/what-is-tf-idf

http://www.tfidf.com

https://papers.nips.cc/paper/2013/file/9aa42b31882ec039965f3c4923ce901b-Paper.pdf

http://kavita-ganesan.com/gensim-word2vec-tutorial-starter-code/#.X6UJGVqSkRe

https://www.kaggle.com/pierremegret/gensim-word2vec-tutorial

Agradecimentos

Obrigado pelo tempo! Deixe seu feedback nos comentários e siga-nos nas redes sociais! Em breve disponibilizaremos mais conteúdo gratuito. Fiquem de olho!

LinkedIn, Instagram e Github.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有